package lp2.projeto.anotacao;

import java.io.Serializable;
import java.util.*;

import lp2.projeto.agenda.Imagem;
import lp2.projeto.agenda.Som;
import lp2.projeto.agenda.Texto;

/**
 * Classe que representa uma anotacao, por exemplo, um texto relacionado a algum evento
 */
public class Anotacao implements Serializable {
	private static final long serialVersionUID = 158719693884373997L;
	private String titulo;
	private List<Texto> textos = new ArrayList<Texto>();
	private List<Imagem> imagens = new ArrayList<Imagem>();
	private List<Som> sons = new ArrayList<Som>();
	
	/**
	 * Construtor da classe Anotacao
	 * @param titulo Titulo da anotacao
	 */
	public Anotacao(String titulo) {
		this.titulo = titulo;
	}
	
	/**
	 * Retorna o titulo da anotacao
	 * @return o titulo
	 */
	public String getTitulo() {
		return titulo;
	}
	
	/**
	 * Retorna os textos relacionados a anotacao
	 * @return os textos
	 */
	public List<Texto> getTextos() {
		return textos;
	}
	
	/**
	 * Retorna as imagens relacionadas a anotacao
	 * @return as imagens
	 */
	public List<Imagem> getImagens() {
		return imagens;
	}
	
	/**
	 * Retorna os sons relacionados a anotacao
	 * @return os sons
	 */
	public List<Som> getSons() {
		return sons;
	}
	
	/**
	 * Seta o titulo da anotacao
	 * @param titulo o titulo
	 */
	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}
	
	/**
	 * Seta os textos relacionados a anotacao
	 * @param textos os textos
	 */
	public void setTextos(List<Texto> textos) {
		this.textos = textos;
	}
	
	/**
	 * Seta as imagens relacionadas a anotacao
	 * @param imagens as imagens
	 */
	public void setImagens(List<Imagem> imagens) {
		this.imagens = imagens;
	}
	
	/**
	 * Seta os sons relacionados a anotacao
	 * @param sons os sons
	 */
	public void setSons(List<Som> sons) {
		this.sons = sons;
	}
	
	/**
	 * @return Retorna uma representacao em String da anotacao
	 */
	public String toString() {
		return titulo;
	}
}
